package org.game.db;

import org.game.db.cache.*;
import org.game.db.dao.*;
import com.sojoys.artifact.build.data.base.BaseCache;
import com.xiaoleilu.hutool.date.DateUtil;
import com.xiaoleilu.hutool.date.TimeInterval;
import com.xiaoleilu.hutool.log.Log;
import com.xiaoleilu.hutool.log.LogFactory;
/**
 * 数据存储
 */
public class DbSave {
	
	static final Log log = LogFactory.get(DbSave.class);
	
	public static void init(){
		TimeInterval timer = DateUtil.timer();
		// 全服邮件
		ServerMailCache.me().initLastPrimaryKey(ServerMailDaoImpl.me().getLastId());
		
		
		
		log.info("--> DbSave init autoId ({})",timer.intervalMs());
		
		// 全服邮件
		ServerMailCache.me().loadAll();
		log.info("--> DbSave init ({})",timer.intervalMs());
	}

	public static boolean saveAll() throws Exception{
		TimeInterval timer = DateUtil.timer();
		// 建筑
		BuildingCache.me().saveAll();
		// 城市(区域)
		CityCache.me().saveAll();
		// 城市约会记录
		CityDatingRecordCache.me().saveAll();
		// 商城购买记录
		CommodityBuyRecordCache.me().saveAll();
		// 合成召唤
		ComposeSummonCache.me().saveAll();
		// 当前剧本记录
		CurrentScriptRecordCache.me().saveAll();
		// 玩家约会记录
		DatingCache.me().saveAll();
		// 副本关卡记录
		DungeonLevelCache.me().saveAll();
		// 副本组
		DungeonLevelGroupCache.me().saveAll();
		// 图鉴(游戏元素收集)
		ElementCollectionCache.me().saveAll();
		// 阵型
		FormationCache.me().saveAll();
		// 英雄
		HeroCache.me().saveAll();
		// 物品
		ItemCache.me().saveAll();
		// 邮件
		MailCache.me().saveAll();
		// 月卡
		MonthCardCache.me().saveAll();
		// 玩家
		PlayerCache.me().saveAll();
		// 玩家活动记录
		PlayerActivityCache.me().saveAll();
		// 玩家离散数据
		PlayerDataCache.me().saveAll();
		// 玩家商城
		PlayerStoreCache.me().saveAll();
		// 充值礼包记录
		RechargeGiftBagRecordCache.me().saveAll();
		// 订单
		RechargeOrderCache.me().saveAll();
		// 预定约会记录
		ReserveDateRecordCache.me().saveAll();
		// 精灵(板娘)
		RoleCache.me().saveAll();
		// 全服邮件
		ServerMailCache.me().saveAll();
		// 任务
		TaskCache.me().saveAll();
		log.info("--> DbSave saveAll ({})",timer.intervalMs());
		return true;
	}
	public static boolean shutdownAll() throws Exception{
		saveAll();
		BaseCache.shutdown();
		return true;
	}
//自定义内容起始位置
//自定义内容结束位置
}